Lis (linear algebra library)

Lis
Developer(s) Akira Nishida, Hisashi Kotakemori, Akihiro Fujii, Hidehiko Hasegawa
Initial release 2005 (2005)
Stable release 1.2.62 / December 24, 2011; 53 days ago (2011-12-24)
Development status Active
Written in C
Operating system Cross-platform
Available in C, Fortran
Type Software library
License Modified BSD License
Website http://www.ssisc.org/lis/

Lis (Library of Iterative Solvers for linear systems) is a scalable parallel library for solving systems of linear equations and standard eigenvalue problems with real sparse matrices using iterative solvers.

Contents

Features

Lis provides facilities for:

Example

A C program to solve a system of linear equations Ax=b is written as follows:

#include <stdio.h>
#include "lis_config.h"
#include "lis.h"
 
int main(int argc, char* argv[])
{
  LIS_MATRIX A;
  LIS_VECTOR b,x;
  LIS_SOLVER solver;
  int iter;
  double times;
 
  lis_initialize(&argc, &argv);
  lis_matrix_create(LIS_COMM_WORLD,&A);
  lis_vector_create(LIS_COMM_WORLD,&b);
  lis_vector_create(LIS_COMM_WORLD,&x);
  lis_solver_create(&solver);
  lis_solver_set_optionC(solver);
  lis_input(A,b,x,argv[1]);
  lis_vector_set_all(1.0,b);
  lis_vector_duplicate(A,&x);
  lis_solve(A,b,x,solver);
  lis_solver_get_iters(solver,&iter);
  lis_solver_get_time(solver,&times);
  printf("iter= %d time = %e\n",iter,times);
  lis_solver_destroy(solver);
  lis_matrix_destroy(A);
  lis_vector_destroy(b);
  lis_vector_destroy(x);
  lis_finalize();
  return 0;
}

System requirements

Installation of Lis requires a C compiler. To use the Fortran interface, a FORTRAN 77 compiler is required. To use the algebraic multigrid preconditioner, a Fortran 90 compiler is required. OpenMP and MPI-1 are used in parallel computing environments. Both the Harwell-Boeing and Matrix Market formats are supported for the import and export of user data.

References

See also

External links